Soft decision decoding of a scheduled convolutional code

ABSTRACT

A method for decoding a predetermined code word is specified in which the code word comprises a number of positions having different values. In this method, encoding is performed, in particular, by way of a terminated convolutional code. Each position of the code word is correlated with a safety measure (soft output) for a most probable Boolean value by performing the correlation on the basis of a trellis representation. The decoding of the code word is determined by the correlation of the individual positions of the code word.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention relates to a method and an arrangement for decoding apredetermined code word.

2. Description of the Related Art

In the decoding of a code word which has a predetermined number ofpositions, the information-carrying positions are restored as completelyas possible.

The decoding takes place at the end of the receiver which has receivedthe code word via a disturbed channel. Signals are transmitted, inparticular as Boolean values, preferably subdivided into +1 and −1, viathe channel where they are subject to a disturbance, and are convertedinto analog values which can deviate to a greater or lesser extent fromthe predetermined Boolean values (±1) by a demodulator.

The general assumption is K positions of binary information(“information bits”) without redundancy uε{±1}^(K), which is mapped intoa code word cε{±1}^(N) by means of systematic block codes orunsystematic block codes by a channel coder. In this arrangement, thecode word contains N−K bits (also “check bits”) which can be used asredundant information to the N information bits for restoring theinformation after transmission via the disturbed channel.

The systematic block code adds to the N information bits N−K check bitswhich are calculated from the information bits, the information bitsthemselves remaining unchanged whereas, in the unsystematic block code,the information bits themselves are changed, for example the informationis in an operation performed from one to the next position. Here, too,check bits are provided for reconstructing the information hidden in theoperations. In the text which follows, in particular, a technicallysignificant variant of unsystematic block codes, the so-calledterminated convolutional codes, is considered.

“Hard” decoding of a correlation of the received code word (with thepositions occupied by analog values) i.e., correlating each positionwith the nearest Boolean value in each case, is a decisive disadvantagesince valuable information is lost in this process.

SUMMARY OF THE INVENTION

It is the object of the invention to determine a decoding of apredetermined code word, with decoding supplying analog values(so-called “soft outputs”) which, in particular, can be taken intoconsideration in the subsequent decoding method and thus provide forhigh error correction in the transmission of code words via a disturbedchannel.

This object is achieved in accordance with the various embodiments ofthe method and apparatus discussed below.

To achieve this object, a method for decoding a predetermined code wordis specified in which the code word comprises a number of positionshaving different values. In this arrangement, encoding has taken place,in particular, by way of a terminated convolutional code. Each positionof the code word is correlated with a safety measure (soft output) for amost probable Boolean value by performing the correlation on the basisof a trellis representation. The decoding of the code word is determinedby the correlation of the individual positions of the code word.

A decisive advantage here is that due to the correlation based on thetrellis representation, a distinct reduction in complexity compared witha general representation takes place with the result that decoding ofthe code word (generation of the soft outputs at the positions of thecode word) also becomes possible in real time.

A further development consists in that the decoding rule for eachposition of the code word is determined by

$\begin{matrix}{{{L\left( U_{i} \middle| y \right)} = {\ln\left( \frac{\sum\limits_{c \in {\Gamma^{i}{({+ 1})}}}\;{\exp\left( {- \frac{\left( {y - c} \right)^{T}\left( {y - c} \right)}{2\sigma^{2}}} \right)}}{\sum\limits_{c \in {\Gamma^{i}{({- 1})}}}\;{\exp\left( {- \frac{\left( {y - c} \right)^{T}\left( {y - c} \right)}{2\sigma^{2}}} \right)}} \right)}},} & (1)\end{matrix}$

where

L(U_(i)|y) is a safety measure (soft output) for the i-th position ofthe code word to be determined;

y is a demodulation result to be decoded;

c is a code word;

Γ^(i)(±1) are all code words for u_(i)=±1; and

σ² is a variance (channel disturbance).

Another further development provides that the equation (1) is solved byutilizing a characteristic of a convolutional code used in the coding(and correspondingly in the decoding) which determines states inaccordance with a shift register operation used during the convolution,from which states, in turn, the trellis representation is obtained.

In an additional further development, the trellis representation is runthrough in a predetermined direction in order to recursively calculateterms A_(m) and A_(m) respectively. Into this calculation rule, nodeweights μ_(m)(s) which are determined by the demodulation result y enterat the nodes (s, m) of the trellis representation. The terms A_(m) andA_(m) are described by

$\begin{matrix}{{{{\overset{\sim}{A}}_{m}(E)} = {\sum\limits_{s \in E}\;{A_{m}(s)}}},{{{for}\mspace{14mu} m} \in}} & (2)\end{matrix}$

with

$\begin{matrix}{{{A_{m}(s)} = {{\mu_{m}(s)}{\sum\limits_{t \in {W{({s,V_{m}})}}}\;{A_{m - 1}(t)}}}},{{{for}\mspace{14mu} m} \in}} & (3)\end{matrix}$

and a starting value

$\begin{matrix}{{A_{0}(s)} = \left\{ \begin{matrix}{{{1:{{for}\mspace{14mu} s}} = s_{0}},} \\{0:{else}}\end{matrix} \right.} & (4)\end{matrix}$

A more detailed discussion of the forms of description listed here canalso be found in the description of the exemplary embodiment.

One embodiment provides that mappings B_(m) are determined by way of thetrellis representation, the trellis representation being processed inopposition to the predetermined direction. The term B_(m) is determinedby

$\begin{matrix}{{{B_{m}(s)} = {{\mu_{Q - m + 1}(s)}{\sum\limits_{t \in {T{({s,V_{Q - m + 2}})}}}\;{B_{m - 1}(t)}}}},{{{for}\mspace{14mu} 1} \leq m \leq Q},} & (5)\end{matrix}$

where

$\begin{matrix}{{B_{0}(s)} = \left\{ \begin{matrix}{{{1:{{for}\mspace{14mu} s}} = s_{0}},} \\{0:{else}}\end{matrix} \right.} & (6)\end{matrix}$

is determined for terminating the recursion.

Furthermore, terms A_(α) ^(i) can be determined by again running throughthe trellis representation taking into consideration the terms A_(m) andB_(m) already determined. In particular, the terms A_(α) ^(i) aredetermined in accordance with

$\begin{matrix}{{A_{\alpha}^{i}(y)} = {\sum\limits_{s \in S}\;{{A_{j - 1}(s)}{\sum\limits_{t \in {T{({s,{V_{j}^{i}{(\alpha)}}})}}}\;{{B_{Q - j + 1}(t)}.}}}}} & (7)\end{matrix}$

In a further embodiment, the K positions of the decoded code word aredetermined in accordance with

$\begin{matrix}{{{L\left( U_{i} \middle| y \right)} = {\ln\left( \frac{A_{+ 1}^{z}(y)}{A_{- 1}^{i}(y)} \right)}},{i = 1},\ldots\mspace{14mu},{K.}} & (8)\end{matrix}$

In particular, an AWGN (Additive Gaussian White Noise) channel model isused for the derivation. The method presented can also be used for otherchannel models, especially for channel models used in mobile radio.

Another embodiment relates to the use of the method in a mobile radionetwork, especially the GSM network.

It is also a further development that, after the soft outputs have beendetermined, there is a “hard” correlation of the analogue values withthe Boolean values ±1. In this arrangement, the nearest Boolean value isin each case determined for correlating the analogue value.

The soft output values determined can be used as input values forfurther decoding when concatenated codes are used.

To achieve the object, an arrangement for decoding a predetermined codeword is also specified in which a processor unit is provided which isset up in such a manner that

-   -   1. the code word comprises a number of positions having        different values;    -   2. each position of the code word can be correlated with a soft        output value by performing the correlation on the basis of a        trellis representation; and    -   3. the decoding of the code word can be determined by the        correlation of the individual positions of the code word.

This arrangement is particularly suitable for performing the methodaccording to the invention or one of its further developments explainedabove.

BRIEF DESCRIPTION OF THE DRAWINGS

In the text which follows, exemplary embodiments of the invention willbe shown and explained with reference to the drawings, in which:

FIG. 1 is a block diagram showing a representation of digitalinformation transmission;

FIG. 2 is an algorithm in pseudocode notation for progressing in thetrellis diagram observing all states for the calculation of nodeweights;

FIG. 3 is an algorithm in pseudocode notation for determining softoutputs (general case);

FIG. 4 is an algorithm in pseudocode notation for determining softoutputs (special case: binary state transition); and

FIG. 5 is a block diagram of a processor unit.

DETAILED DESCRIPTION OF THE INVENTION

The text which follows describes in greater detail, first theconvolutional code, then the reduction in complexity in the calculationof soft outputs and, finally, an algorithmic translation of thereduction in complexity.

Terminated Convolutional Code

In communication technology, terminated convolutional codes are mostlyused in concatenation with other systematic or unsystematic block codes.In particular, the decoding result of a convolutional decoder is used asthe input for another decoder.

To ensure the lowest possible error rate, it is necessary to supply“soft” decoding decisions instead of “hard” ones in the convolutionaldecoding for the further decoder, i.e., to generate a tuple of “soft”values (soft outputs) from R instead of a tuple of “hard” Boolean (±1)values. The absolute value of the respective “soft” decision thenprovides a safety measure for the correctness of the decision.

In principle, these soft outputs can be calculated in accordance withequation (1), depending on the channel model. However, the numericcomplexity for calculating a soft output is O(2^(K)), where K specifiesthe number of information bits. If K is realistically large, then theseformulae can not be evaluated, in particular, since such a code wordmust be calculated again every few milliseconds (a real-timerequirement).

One consequence of this is that soft outputs are dispensed with (withall consequences for the word and bit error rates) or, respectively,fewer elaborate approximations are performed for determining the softoutputs.

In the text which follows, a possibility for terminated convolutionalcodes is specified with the aid of which this complexity can be reducedto O(K) in a trellis representation for calculating all soft outputs,i.e., this solution provides the possibility for a precise evaluation ofequation (1).

In the text which follows, the bits of the code are represented in {±1}representation. In comparison with a {0, 1} representation, which isoften used in information technology, −1 corresponds to 1 and 1corresponds to 0.

On a body {±1}, addition ⊕ and multiplication ⊙ are defined as follows:

−1 ⊕ −1 = 1 −1 ⊙ −1 = −1 −1 ⊕ 1 = −1 −1 ⊙ 1 = 1   1 ⊕ −1 = −1   1 ⊙ −1 =1   1 ⊕ 1 = 1   1 ⊙ 1 = 1

The coding is done with the aid of a “shift register” into which bitblocks (input blocks) of the information bits are written with eachclock pulse. The combination of the bits of the shift register thengenerates one bit block of the code word. The shift register ispre-assigned +1 bits in each case. To terminate the coding (termination)blocks of tail zeros (+1) are shifted in afterwards. As has beenmentioned initially, check bits by way of which bit errors can becorrected are correlated with the information bits by way of coding.

The following are defined for the further embodiments:

bεN number of input bits per block;

V:={±1}^(b) set of state transition signs;

aεN number of input blocks;

K:=a·b number of information bits without tail zeros;

kεN, k≧2 block length of the shift register, penetration depth;

L:=k·b bit length of the shift register;

S:={±1}^(L) set of shift register signs;

nεN number of output bits per block;

Q:=a+k−1 number of state transitions, input blocks+zeros;

N:=n·Q number of code bits; and

$R:={\frac{b}{n}\mspace{14mu}{code}\mspace{14mu}{{rate}.}}$

It should be noted here that the code rate is not K/N since theinformation bits have been counted without the zeros (+1) of theconvolutional termination.

Furthermore, s₀εS and ν₀εV are assumed to be the respective zeroelements, i.e.,s ₀=(+1, . . . , +1)^(τ), ν₀=(+1, . . . , +1)^(τ).  (9)

The state transition function of the shift register is assumed to beT:S×V→S,  (10)(s,ν)

(s ^(b+1) , . . . , s ^(L),ν¹, . . . , ν^(b))^(τ).  (11)

The terminated convolutional code is defined by the characterizingsubsetsM ₁ , . . . , M _(n) ⊂{1, . . . , L},  (12)

(combination of register bits, alternatively in polynomialrepresentation).

The current register content is coded viaC:S→{±1}^(n),  (13)

$\begin{matrix}{{{s{C(s)}\mspace{14mu}{where}\mspace{14mu}{C_{j}(s)}}:={\underset{i \in M_{j}}{\oplus}s^{i}}},{{{for}\mspace{14mu} 1} \leq j \leq {n.}}} & (14)\end{matrix}$

where s^(i) is the i-th component of s.

Finally, the coding of an information word is defined by way ofφ:{±1}^(K)→{±1}^(N),  (15)

$\begin{matrix}{{u\begin{pmatrix}{C\left( s_{1} \right)} \\\vdots \\\left( s_{Q} \right)\end{pmatrix}},} & (16)\end{matrix}$where s₀εS is the zero state (zero element),

$\begin{matrix}{{u = \begin{pmatrix}v_{1} \\\vdots \\v_{a}\end{pmatrix}},{v_{i}\varepsilon\; V},{1 \leq i \leq a},} & (17)\end{matrix}$ν₁ :=v ₀ , a+1≦i≦Q,  (18)

and furthermores _(i) :=T(s _(i−1), ν_(i)), 1≦i≦Q.  (19)

According to the definition of T, the following is obtaineds _(Q+1) :=T(s _(Q) ,v ₀)=s ₀.  (20)

Accordingly, the set of all code words isφ({±1}^(K)):={φ(u)ε{±1}^(N) ; uε{±1}^(K)}.  (21)

Often, polynomialsp _(j)ε{0,1}[D] where deg(p _(j))≦L−1

are used instead of the sets M_(j) for code definition, i.e.,

$\begin{matrix}{{p_{j}(D)} = {\sum\limits_{i = 0}^{L - 1}\;\gamma_{i,{j\; D^{i}},}}} & (22)\end{matrix}$

withγ_(i,j) ε {0,1} i=0, . . . , L−1, j=1, . . . , n.

The following transformations then apply for j=1, . . . , n:M _(j) ={iε{1, . . . , L}; γ _(L−i,j)=1}  (23)

$\begin{matrix}{{p_{j}(D)} = {\sum\limits_{i\;\varepsilon\; M_{j}}^{\;}\;{D^{L - i}.}}} & (24)\end{matrix}$Block Code Representation

Since a terminated convolutional code is a block code, the code bitsc_(j), 1≦j≦N can also be represented from the information bits u_(i),1≦i≦K, with index sets J_(j), as follows:

$\begin{matrix}{{{c_{j}:={\underset{i\;\varepsilon\; J_{j}}{\oplus}\; u_{i}}},{{{for}\mspace{14mu} 1} \leq j \leq N},}\mspace{14mu}} & (25)\end{matrix}$

whereJ₁, . . . , J_(N) 532 {1, . . . , K}.  (26)

The index sets J_(j) can be calculated directly from the above indexsets M_(m) of the code definition.

Considerj=n(q−1)+m,q=1, . . . , Q,m=1, . . . , n.  (27)

$\begin{matrix}{{c_{j} = {{C_{m}\left( s_{q} \right)} = {{\underset{i\;\varepsilon\; M_{m}}{\oplus}\left( s_{q} \right)^{i}} = {\underset{i\;\varepsilon\; M_{m}}{\oplus}\; u_{i + {b{({q - k})}}}}}}},} & (28)\end{matrix}$

where u_(i):=+1 for i ∉{1, . . . , K}.

Furthermore,

$\begin{matrix}{{c_{j} = {{\underset{i - {{b{({q - k})}}\;\varepsilon\; M_{m}}}{\oplus}u_{i}} = {\underset{{i\;\varepsilon\; M_{m}} + {b{({q - k})}}}{\oplus}u_{i}}}},} & (29)\end{matrix}$

and it thus follows for j=1, . . . , N that

$\begin{matrix}\begin{matrix}{J_{j} = {\left\{ {1,\ldots\mspace{14mu},K} \right\}\bigcap\left( {M_{m} + {b\left( {q - k} \right)}} \right)}} \\{= {\left\{ {{i\;\varepsilon\;\left\{ {1,\ldots\mspace{14mu},K} \right\}};{i - {{b\left( {q - k} \right)}\varepsilon\; M_{m}}}} \right\}.}}\end{matrix} & (30)\end{matrix}$Example: SACCH Convolutional Code

In the above terminology, the convolutional code described in section4.1.3 of the GSM Technical Specification GSM 05.03, Version 5.2.0(channel coding) is:

b=1 number of input bits per block;

V={±1} set of state transition signs;

a=224 number of input blocks;

K=224 number of information bits without tail zeros;

k=5 block length of the shift register, depth of penetration;

L=5 bit length of the shift register;

S={±1}⁵ set of shift register signs;

n=2 number of output bits per block;

Q=228 number of state transitions, input blocks+zeros;

N=456 number of code bits;

${R = {\frac{1}{2}\mspace{14mu}{code}\mspace{14mu}{rate}}};$

M₁={1,2,5} characterizing set; polynomial: 1+D³+D⁴; and

M₂={1,2,4,5} characterizing set; polynomial: 1+D+D³+D⁴.

Soft Outputs in an AWGN Channel Model

In the text which follows, calculation rules for determining the softoutputs are derived, especially for the sake of clarity.

For this purpose, a probability space (Ω,S,P) and a K-dimensional randomvariable U:Ω→{±1}^(K) are considered which have the properties

The components U₁, . . . , U_(K): Ω→{±1} are stochastically independent.

The following holds for i=1, . . . ,KP({ωεΩ; U _(i)(ω)=−1})=P({ωεΩ; U _(i)(ω)=+1}).  (31)

FIG. 1 shows a representation of digital telecommunication. A unitconsisting of source 201, source encoder 202 and crypto-encoder 203determines an information item uε{±1}^(K) which is used as input for one(or possibly more) channel encoder(s) 204. The channel encoder 204generates a code word cε{±1}^(N) which is fed into a modulator 205 andis transmitted via a disturbed physical channel 206 to a receiver whereit is determined to become a real-value code word yεR^(N) in ademodulator 207. This code word is converted into a real-valueinformation item in a channel decoder 208. If necessary, a “hard”correlation with the Boolean values ±1 can also be made in a furtherdecoder so that the received information is present in Boolean notation.The receiver is completed by a unit of crypto-decoder 209, sourcedecoder 210 and sink 211. The two crypto-encoder 203 and crypto-decoder209 units are optional in this arrangement.

The information to be reconstructed, uε{±1}^(K), of the crypto-encoder203 is interpreted as implementation of the random variables U sincenothing is known about the choice of u in the receiver.

Thus, the output cε{±1}^(N) of the channel encoder 204 is animplementation of the random variables φ(U).

The output yεR^(N) of the demodulator 207 is interpreted asimplementation of the random variablesY:Ω→

^(N),  (32)ω

φ(U(ω))+Z(ω),  (33)

a random variable Z:Ω→R^(N) representing the channel disturbances in thephysical channel 206.

In the text which follows, an AWGN channel model is assumed, i.e., Z isa N(0,σ²I_(N)) normally distributed random variable which isstochastically independent of U and, respectively, φ(U). The variance σ²is calculated from the ratio between noise power density and mean energyin the channel 206 and is here assumed to be known.

The unknown output uε{±1}^(K) of the crypto-encoder is to bereconstructed on the basis of an implementation y of Y. To estimate theunknown quantities u₁, . . . , u_(K), the distribution of the randomvariables U is investigated given the condition that y has beenreceived.

The consequence of the fact that the random variable Y is a steadyrandom variable is that the consideration of U under the condition thaty has been received (Y({circumflex over (ω)})=y) is extremelycomplicated.

Firstly, the following is defined for iε{1, . . . , K} and αε{±1}Γ^(i)(α):={φ(u); uε{±1}^(K) ; u _(i)=α}.  (34)

In a preparatory step, the following quantities are considered for ε>0,paying attention to the injectivity of the coding map φ:

$\begin{matrix}\begin{matrix}{L_{\varepsilon}\left( {{U_{i}\left. y \right)}:={\ln\left( \frac{P\left( {\left\{ {{\omega\;\varepsilon\;\Omega}\;;{{U_{i}(\omega)} = {+ 1}}} \right\}\;\left. \left\{ {{\omega\;\varepsilon\;\Omega}\;;{{Y(\omega)}\;\varepsilon\; M_{y,\varepsilon}}} \right\} \right)} \right.}{P\left( {\left\{ {{\omega\;\varepsilon\;\Omega}\;;{{U_{i}(\omega)} = {- 1}}} \right\}\;\left. \left\{ {{\omega\;\varepsilon\;\Omega}\;;{{Y(\omega)}\;\varepsilon\; M_{y,\varepsilon}}} \right\} \right)} \right.} \right)}} \right.} \\{{= {\ln\left( \frac{\sum\limits_{c\;\varepsilon\;{\Gamma^{i}{({+ 1})}}}^{\;}\;{P\left( {\left\{ {{\omega\;\varepsilon\;\Omega}\;;{{\varphi\left( {U(\omega)} \right)} = c}} \right\}\;\left. \left\{ {{\omega\;\varepsilon\;\Omega}\;;{{Y(\omega)}\;\varepsilon\; M_{y,\varepsilon}}} \right\} \right)}\mspace{11mu} \right.}}{\sum\limits_{c\;\varepsilon\;{\Gamma^{i}{({- 1})}}}^{\;}\;{P\left( {\left\{ {{\omega\;\varepsilon\;\Omega}\;;{{\varphi\left( {U(\omega)} \right)} = c}} \right\}\;\left. \left\{ {{\omega\;\varepsilon\;\Omega}\;;{{Y(\omega)}\;\varepsilon\; M_{y,\varepsilon}}} \right\} \right)}\mspace{11mu} \right.}} \right)}},}\end{matrix} & (35)\end{matrix}$

for i=1, . . . , K, where M_(y,ε):=[y₁,y₁+ε]× . . . ×[y_(N),y_(N)+ε].

Using the theorem by Bayes, the following is obtained:

$\begin{matrix}\begin{matrix}{L_{\varepsilon}\left( {{U_{i}\left. y \right)} = {\ln\left( \frac{\sum\limits_{c\;\varepsilon\;{\Gamma^{i}{({+ 1})}}}^{\;}\;{P\left( {\left\{ {{\omega\;\varepsilon\;\Omega}\;;{{Y(\omega)}\;\varepsilon\; M_{y,\varepsilon}}} \right\}\;\left. \left\{ {{\omega\;\varepsilon\;\Omega}\;;{{\varphi\left( {U(\omega)} \right)} = c}} \right\} \right)} \right.}}{\sum\limits_{c\;\varepsilon\;{\Gamma^{i}{({- 1})}}}^{\;}\;{P\left( {\left\{ {{\omega\;\varepsilon\;\Omega}\;;{{Y(\omega)}\;\varepsilon\; M_{y,\varepsilon}}} \right\}\;\left. \left\{ {{\omega\;\varepsilon\;\Omega}\;;{{\varphi\left( {U(\omega)} \right)} = c}} \right\} \right)} \right.}} \right)}} \right.} \\{= {{\ln\left( \frac{\sum\limits_{c\;\varepsilon\;{\Gamma^{i}{({+ 1})}}}^{\;}{\int\limits_{M_{y,\varepsilon}}{{\exp\left( {- \frac{\left( {x - c} \right)^{T}\left( {x - c} \right)}{2\;\sigma^{2}}} \right)}{\mathbb{d}x}}}}{\sum\limits_{c\;\varepsilon\;{\Gamma^{i}{({- 1})}}}^{\;}{\int\limits_{M_{y,\varepsilon}}{{\exp\left( {- \frac{\left( {x - c} \right)^{T}\left( {x - c} \right)}{2\;\sigma^{2}}} \right)}{\mathbb{d}x}}}} \right)}.}}\end{matrix} & (36)\end{matrix}$

Considering then the limiting process of L_(ε)(U_(i)|y) for ε↓0 by usingL'Hospital's rule several times, the soft output L(U_(i)|y) is obtainedfor each symbol as in equation (1).

SinceΓ^(i)(+1)∪Γ^(i)(−1)={±1}^(K)

holds true, a total of O(2^(K)) numeric operations are necessary forevaluating equation (1).

The vector L(U.|y)εR^(K) is the result of decoder 208.

Reduction of Complexity in the Determination of the Soft Outputs

Soft-Output Determination for Convolutional Codes

Firstly, the special characteristics of the terminated convolutionalcoding are used for providing an organized representation of thesoft-output formula (1).

For an arbitrary, but preselected output yεR^(N) of the demodulator 207,the following weighting function (a Viterbi metric) of code words isconsidered:F:{±1}^(N)→

₀ ⁺,  (37)

$\begin{matrix}\left. c\mapsto{\sum\limits_{j = 1}^{N}\;{\left( {y_{j} - c_{j}} \right)^{2}.}} \right. & (38)\end{matrix}$

For permissible code words cε{±1}^(N), i.e. cεφ({±1}^(K)), F(c) can bereduced as follows, using the shift register representation:

$\begin{matrix}{{F(c)} = {\sum\limits_{q = 1}^{Q}\underset{\underset{= {:{\Delta\;{F_{q}{({\overset{\sim}{s}}_{q}^{c})}}}}}{︸}}{{{\sum\limits_{j = 1}^{n}\;\left( {y_{{n{({q - 1})}} + j} - {C_{j}\left( {\overset{\sim}{s}}_{q}^{c} \right)}} \right)^{2}},}\;}}} & (39)\end{matrix}$

where {tilde under (s)}_(q) ^(c) stands for the q-th state of the shiftregister in the (unambiguous) generation of the word c.

Then the following is defined for I=1, . . . , K and αε{±1}:

$\begin{matrix}{{A_{\alpha}^{i}(y)}:={{\sum\limits_{c\;\varepsilon\;{\Gamma^{i}{(\alpha)}}}^{\;}\;{\exp\;\left( {- \frac{\left( {y - c} \right)^{T}\left( {y - c} \right)}{2\;\sigma^{2}}} \right)}} = {\sum\limits_{c\;\varepsilon\;{\Gamma^{i}{(\alpha)}}}^{\;}{\prod\limits_{q = 1}^{Q}\;{\exp\;{\left( {{- \frac{1}{2\;\sigma^{2}}}\Delta\;{F_{q}\left( {\overset{\sim}{s}}_{q}^{c} \right)}} \right).}}}}}} & (40)\end{matrix}$

Thus, the following holds true for the soft outputs

$\begin{matrix}{L\left( {{{U_{i}\left. \; y \right)} = {\ln\left( \frac{A_{+ 1}^{i}(y)}{A_{- 1}^{i}(y)} \right)}},{i = 1},\ldots\mspace{14mu},{K.}} \right.} & (41)\end{matrix}$

In the text which follows, the values A_(α) ^(i)(y) are determined withthe aid of a trellis diagram/representation.

To reduce the complexity of calculation, the following procedure isadopted in the following sections:

-   -   generalization of A_(α) ^(i) by mappings Ã_(m).    -   Recursive representation of Ã_(m) by mappings A_(m), the values        of which are calculated with a “from left to right” run through        a trellis diagram.    -   Reversal of the recursion by mappings B_(m), the values of which        are calculated with a “from right to left” run through a trellis        diagram.    -   joint calculation of all A_(α) ^(i) by way of a further run        through a trellis diagram by using A_(m) and B_(m).

The trellis diagram is here a set

={(s,q); sεS, q=0, . . . , Q+1}  (42)

The elements (s,q) of this set are also called the nodes in the trellisdiagram, s representing a state and q being considered as a dynamicvalue (especially time).

General Recursive Representation

Firstly, some definitions are needed for representing the A_(α) ^(i) ina generalized form which allows later transformation. For this reason,the following is determineds _(i) ^(u) :=T(s ₀ ,u ₁), uεV ^(m) =V× . . . ×V, m≧1,  (43)s _(j) ^(u) :=T(s _(j−1) ^(u) ,u _(j)) uεV ^(m) , m≧j>2,  (44)

i.e., s_(j) ^(u) represents the state of the shift register after jshifts of the register with the input symbols u₁, . . . , u_(j).

Furthermore, sets V_(j) ⊂V,jεN, which contain the permissible statetransition symbols in the j-th step, are considered. Furthermore,product sets are defined asU _(m) :V ₁ × . . . ×V _(m) ⊂V ^(m) , mε

  (45)

i.e., U_(m) contains the first m components of the permissible inputwords.

For qεN, mappingsμ_(q):S→

  (46)

are considered and for mεN and input word sets U_(m) ⊂V^(m), mappingsare defined as followsÃ_(m):

(S)→

,  (47)

$\begin{matrix}{\left. E\mapsto{\sum\limits_{\underset{⩓ {({s_{m}^{u}\varepsilon\; E})}}{({u\;{\varepsilon U}_{m}})}}^{\;}\;{\prod\limits_{j = 1}^{m}\;{\mu_{j}\left( s_{j}^{u} \right)}}} \right.,} & (48)\end{matrix}$

i.e., summing over all permissible input words, the shift register ofwhich reaches a final state in E, is performed. If there are no suchinput words, the sum is determined as 0 over an empty index set.

In addition, a mapping is determined asW:S×

(V)→

(S),  (49)(t, {circumflex over (V)})

{s ∈S; ∃{circumflex over (v)}∈{circumflex over (V)}

T(s,{circumflex over (v)})=t},  (50)

i.e., W maps (t, {circumflex over (V)}) into the sets of all stateswhich can reach the state t with a transition symbol from {circumflexover (V)}.

The following holds true for m≧2, E⊂S

$\begin{matrix}\begin{matrix}{{{\overset{\sim}{A}}_{m}(E)} = {\sum\limits_{\underset{⩓ {({s_{m}^{u}\varepsilon\; E})}}{({u\;{\varepsilon U}_{m}})}}^{\;}\;{\prod\limits_{j = 1}^{m}\;{\mu_{j}\left( s_{j}^{u} \right)}}}} \\{= {\sum\limits_{s\;\varepsilon\; E}^{\;}\;{\sum\limits_{\underset{⩓ {({s_{m}^{u} = s})}}{({u\;{\varepsilon U}_{m}})}}^{\;}{\prod\limits_{j = 1}^{m}\;{\mu_{j}\left( s_{j}^{u} \right)}}}}} \\{= {\sum\limits_{s\;\varepsilon\; E}^{\;}{{\mu_{m}(s)}{\sum\limits_{\underset{⩓ {({s_{m}^{u} = s})}}{({u\;{\varepsilon U}_{m}})}}^{\;}{\prod\limits_{j = 1}^{m - 1}\;{\mu_{j}\left( s_{j}^{u} \right)}}}}}} \\{= {\sum\limits_{s\;\varepsilon\; E}^{\;}{{\mu_{m}(s)}{\sum\limits_{\underset{⩓ {({s_{m - 1}^{u}\varepsilon\;{W{({s,V_{m}})}}})}}{({u\;{\varepsilon U}_{m - 1}})}}^{\;}{\prod\limits_{j = 1}^{m - 1}\;{\mu_{j}\left( s_{j}^{u} \right)}}}}}} \\{= {\sum\limits_{s\;\varepsilon\; E}^{\;}{{\mu_{m}(s)}{{{\overset{\sim}{A}}_{m - 1}\left( {W\left( {s,V_{m}} \right)} \right)}.}}}}\end{matrix} & (51)\end{matrix}$

In the transformation in the last step but one, attention must be paidto the fact that there is exactly one transition symbol νεV_(m) withT(s_(m−1) ^(u),v)=s, if s_(m−1) ^(u) is in W(s,V_(m)), i.e., it is notnecessary to take account of any multiplicities.

Consider, then, the following for m≧2 mappingsA_(m):S→

,  (52)s

μ_(m)(s)Ã _(m−1)(W(s,V ^(m))).  (53)

Thus, a recursion formula can be derived for m≧3:

$\begin{matrix}\begin{matrix}{{A_{m}(s)} = {{\mu_{m}(s)}{{\overset{\sim}{A}}_{m - 1}\left( {W\left( {s,V_{m}} \right)} \right)}}} \\{= {{\mu_{m}(s)}{\sum\limits_{t \in {W{({s,V_{m}})}}}\;{{\mu_{m - 1}(t)}{{\overset{\sim}{A}}_{m - 2}\left( {W\left( {t,V_{m - 1}} \right)} \right)}}}}} \\{= {{\mu_{m}(s)}{\sum\limits_{t \in {W{({s,V_{m}})}}}{{A_{m - 1}(t)}.}}}}\end{matrix} & (54)\end{matrix}$

Furthermore:

$\begin{matrix}\begin{matrix}{{A_{2}(s)} = {{\mu_{2}(s)}{{\overset{\sim}{A}}_{1}\left( {W\left( {s,V_{2}} \right)} \right)}}} \\{= {{\mu_{2}(s)}{\sum\limits_{\underset{⩓ {({s_{1}^{u} \in {W{({s,V_{2}})}}})}}{({u \in U_{1}})}}\;{\mu_{1}\left( s_{1}^{u} \right)}}}} \\{= {{{\mu_{2}(s)}{\sum\limits_{t \in {W{({s,V_{2}})}}}\;{{\mu_{1}(t)}\delta_{s_{0}}}}} \in {W\left( {t,V_{1}} \right)}}} \\{= {{\mu_{2}(s)}{\sum\limits_{t \in {W{({s,V_{2}})}}}\underset{\underset{= {:{A_{1}{(t)}}}}{︸}}{{\mu_{1}(t)}{\sum\limits_{\hat{t} \in {W{({t,V_{1}})}}}\begin{matrix}\underset{︸}{\delta_{\hat{t} = s_{0}}} \\{= {:{A_{0}\left( \hat{t} \right)}}}\end{matrix}}}}}}\end{matrix} & (55)\end{matrix}$

In summary, the following thus holds true for sεS, E⊂S:

$\begin{matrix}{{A_{0}(s)} = \left\{ {\begin{matrix}{1,} & {{{{for}\mspace{14mu} s} = s_{0}},} \\{0,} & {otherwise}\end{matrix},} \right.} & (56) \\{{{A_{m}(s)} = {{\mu_{m}(s)}{\sum\limits_{t \in {W{({s,V_{m}})}}}{A_{m - 1}(t)}}}},{{{for}\mspace{14mu} m} \in},} & (57) \\{{{{\overset{\sim}{A}}_{m}(E)} = {\sum\limits_{s \in E}\;{A_{m}(s)}}},{{{for}\mspace{14mu} m} \in .}} & (58)\end{matrix}$

The sets W(s,V_(m)) can be represented constructively. For this purpose,two further mappings are considered. The following is definedτ:S→V,  (59)s=(s ^(i) , . . . , s ^(L))^(τ)

(s ^(L−b+1) , . . . , s ^(L))^(τ),  (60)

i.e., if the state s is the result of a state transition, then τ(s) wasthe associated state transition symbol.

Furthermore{circumflex over (T)}:V×S→S,  (61)(v,s)

(v ¹ , . . . , v ^(b) ,s ¹ , . . . , s ^(L−b))^(τ),  (62)

is defined, i.e., {circumflex over (T)} reverses the direction of theshift register operation.

The following then holdsT({circumflex over (T)}(v,s),τ(s))=s, for all sεS,vεV  (63)

and for all tεS and {circumflex over (V)}⊂V, it also holds true that

$\begin{matrix}\begin{matrix}{{W\left( {t,\hat{V}} \right)} = \left( {{s \in S};{{\exists{\hat{\upsilon} \in \hat{V} \ni {T\left( {s,\hat{\upsilon}} \right)}}} = t}} \right\}} & \; \\{= \left\{ \begin{matrix}{\left\{ {{\hat{T}\left( {\upsilon,t} \right)};{\upsilon \in V}} \right\},} \\{\varnothing,}\end{matrix} \right.} & {\begin{matrix}{{{{if}\mspace{14mu}{\tau(t)}} \in \hat{V}},} \\{{else}.}\end{matrix}}\end{matrix} & (64)\end{matrix}$

Thus, the recursion formula (57) for A_(m)(s) can be written downconstructively as follows:

$\begin{matrix}\begin{matrix}{{A_{m}(s)} = {{\mu_{m}(s)}{\sum\limits_{t \in {W{({s,V_{m}})}}}{A_{m - 1}(t)}}}} & \; \\{= \left\{ \begin{matrix}{{{\mu_{m}(s)}{\sum\limits_{\upsilon \in V}\;{A_{m - 1}\left( {\hat{T}\left( {\upsilon,s} \right)} \right)}}},} \\{0,}\end{matrix} \right.} & {\begin{matrix}{{{{if}\mspace{14mu}{\tau(s)}} \in V_{m}},} \\{{else}.}\end{matrix}}\end{matrix} & (65)\end{matrix}$

It should be noted that in this section, no restrictions were set forthe set V of the state transition symbols and for the sets V_(j)εδ(V).

Reversal of Recursion

In the text which follows, a recursion in the “reverse direction”compared with the above recursion is described. This new recursion isdefined with the aid of the recursion formula (57) for A_(m)(s).

The following is assumed for this purposeT(t,{circumflex over (V)}):={T(t,{circumflex over (v)}); {circumflexover (v)}ε{circumflex over (V)}}, for tεS,{circumflex over (V)}⊂V  (66)

and for MεN, 0≦m≦Q, the following mappings are consideredB_(m):S→

,  (67)

with the following recursive characteristic:

$\begin{matrix}{\begin{matrix}{{\sum\limits_{s \in S}\;{{A_{m}(s)}{\sum\limits_{t \in {T{({s,V_{m + 1}})}}}{B_{Q - m}(t)}}}} = {\sum\limits_{s \in S}{{\mu_{m}(s)}{\sum\limits_{\hat{t} \in {W{({s,V_{m}})}}}{{A_{m - 1}\left( \hat{t} \right)}{\sum\limits_{t \in {T{({s,V_{m + 1}})}}}{B_{Q - m}(t)}}}}}}} \\{= {\sum\limits_{\hat{t} \in S}{\sum\limits_{s \in {T{({\hat{t},V_{m}})}}}{{\mu_{m}(s)}{A_{m - 1}\left( \hat{t} \right)}{\sum\limits_{t \in {T{({s,V_{m + 1}})}}}{B_{Q - m}(t)}}}}}} \\{{= {\sum\limits_{\hat{t} \in S}{{A_{m - 1}\left( \hat{t} \right)}{\sum\limits_{s \in {T{({\hat{t},V_{m}})}}}\underset{\underset{= {:{B_{Q - m + 1}{(s)}}}}{︸}}{{\mu_{m}(s)}{\sum\limits_{t \in {T{({s,V_{m + 1}})}}}{B_{Q - m}(t)}}}}}}},}\end{matrix}{{i.e.},}} & \; \\{{\sum\limits_{s \in S}{{A_{m}(s)}{\sum\limits_{t \in {T{({s,V_{m + 1}})}}}{B_{Q - m}(t)}}}} = {\sum\limits_{s \in S}{{A_{m - 1}(s)}{\sum\limits_{t \in {T{({s,V_{m}})}}}{{B_{Q - m + 1}(t)}.}}}}} & (68)\end{matrix}$

By applying equation (68) several times, the following is obtained foran arbitrary jε{1, . . . , m+1}

$\begin{matrix}{{\sum\limits_{s \in S}\;{{A_{m}(s)}{\sum\limits_{t \in {T{({s,V_{m + 1}})}}}{B_{Q - m}(t)}}}} = {\sum\limits_{s \in S}\;{{A_{j - 1}(s)}{\sum\limits_{t \in {T{({s,V_{j}})}}}{{B_{Q - j + 1}(t)}.}}}}} & (69)\end{matrix}$

According to the above definition, the recursion formula is thus

$\begin{matrix}{{{B_{m}(s)} = {{\mu_{Q - m + 1}(s)}{\sum\limits_{t \in {T{({s,V_{Q - m + 2}})}}}{B_{m - 1}(t)}}}},{{{for}\mspace{14mu} 1} \leq m \leq {Q.}}} & (70)\end{matrix}$

To terminate the recursion, the following are defined

$\begin{matrix}{{B_{0}(s)} = \left\{ \begin{matrix}{1,} & {{{{for}\mspace{14mu} s} = s_{0}},} \\{0,} & {{else}.}\end{matrix} \right.} & (71)\end{matrix}$

Given this termination and the equations (58) and (69),Ã_(Q)(W(s₀,V_(Q+1)))

can be represented for V_(Q+1):={ν₀} and with an arbitrary jε{1, . . . ,Q+1} as follows:

$\begin{matrix}\begin{matrix}{{{\overset{\sim}{A}}_{Q}\left( {W\left( {s_{0},V_{Q + 1}} \right)} \right)} = {\sum\limits_{s \in {W{({s_{0},V_{Q + 1}})}}}{A_{Q}(s)}}} \\{= {\sum\limits_{s \in S}\;{{A_{Q}(s)}{\sum\limits_{t \in {T({s,{\{\upsilon_{0})}}\}}}{B_{0}(t)}}}}} \\{= {\sum\limits_{s \in S}\;{{A_{Q}(s)}{\sum\limits_{t \in {T{({s,V_{Q + 1}})}}}{B_{0}(t)}}}}} \\{= {\sum\limits_{s \in S}{{A_{j - 1}(s)}{\sum\limits_{t \in {T{({s,V_{j}})}}}{{B_{Q - j + 1}(t)}.}}}}}\end{matrix} & (72)\end{matrix}$

Note: in the evaluation of (72), V_(j) is not included in thecalculation of the A_(m) and B_(m) needed.

Calculation of A_(α) ^(i)

Using the preliminary work from the preceding sections, A_(α) ^(i) cannow be calculated in a simple manner.

For this purpose, the following are defined:V_(j):=V, for jε{1, . . . , α},  (73)V _(j) :={v ₀}, for jε{α+1, . . . , Q+1},  (74)

i.e., all permissible code words are defined via the states s_(j) ^(u)withuεU _(Q) =V ₁ × . . . ×V _(Q)

The code words used in the calculation of the A_(α) ^(i) are restrictedby u_(i)=α. For an arbitrary but fixed choice of iε{1, . . . , K}, thereis exactly one jε{1, . . . , α} and exactly one îε{1, . . . , b} withi=(j−1)·b+î.  (75)

Furthermore, the following are defined for an arbitrary but fixed choiceof αε{±1}:V _(j) ^(i)(α):={vεV; v _(î)=α}  (76)U _(Q) ^(i)(α):=V ₁ × . . . ×V _(j−1) ×V ^(j) ^(i)(α)×V _(j+1) × . . .×V _(Q) ⊂U _(Q),  (77)i.e., the code words from Γ^(i)(α) are determined via the states s_(j)^(u) with uεU_(Q) ^(i)(α).

For an arbitrary, but fixed choice of yεR^(N), define for qε{1, . . . ,Q}μ_(q):S→

  (78)

$\begin{matrix}{{s{\exp\left( {{- \frac{1}{2\sigma^{2}}}{\sum\limits_{j = 1}^{n}\;\left( {y_{{n{({q - 1})}} + j} - {C_{j}(s)}} \right)^{2}}} \right)}} = {{\exp\left( {{- \frac{1}{2\sigma^{2}}}\Delta\;{F_{q}(s)}} \right)}.}} & (79)\end{matrix}$

According to the definition of the convolutional code, the followingholds true for all s_(Q) ^(u) with uεU_(Q):s _(Q+1) ^(u) =T(s _(Q) ^(u) ,u _(Q+1))=s ₀ , u _(Q+1) εV_(Q+1)={ν₀},  (80)

i.e.,S_(Q) ^(u)εW(s₀,V_(Q+1)).  (81)

Taking account of equation (72), the following thus holds true:

$\begin{matrix}\begin{matrix}{{A_{\alpha}^{i}(y)} = {\sum\limits_{c \in {\Gamma^{i}{(\alpha)}}}\;{\prod\limits_{q = 1}^{Q}\;{\exp\left( {{- \frac{1}{2\sigma^{2}}}\Delta\;{F_{q}\left( {\overset{\sim}{s}}_{q}^{c} \right)}} \right)}}}} \\{= {\sum\limits_{u \in {U_{Q}^{i}{(\alpha)}}}\;{\prod\limits_{q = 1}^{Q}\;{\mu_{q}\left( s_{q}^{u} \right)}}}} \\{= {\sum\limits_{\underset{⩓ {({s_{Q}^{u} \in {W{({s_{0},V_{Q + 1}})}}})}}{({u \in {U_{Q}^{i}{(\alpha)}}})}}\;{\prod\limits_{q = 1}^{Q}\;{\mu_{q}\left( s_{q}^{u} \right)}}}} \\{= {{\overset{\sim}{A}}_{Q}\left( {W\left( {s_{0},V_{Q + 1}} \right)} \right)}} \\{= {\sum\limits_{s \in S}\;{{A_{j - 1}(s)}{\sum\limits_{t \in {T{({s,{V_{j}^{i}{(\alpha)}}})}}}\;{B_{Q - j + 1}(t)}}}}}\end{matrix} & (82)\end{matrix}$

The important factor is that the A_(m) and B_(m) needed can becalculated independently of i and α via U_(Q) and, respectively,U_(Q+1). Above, Ã_(Q)(W(s₀,V_(Q+1))) was formally determined via theauxiliary construct U_(Q) ^(i)(α) which, however, is no longer needed inthe resultant explicit representation.

SUMMARY OF THE PROCEDURE

Define

$\begin{matrix}{{V_{j}:=V},} & {for} & {{j \in \left\{ {1,\ldots\mspace{14mu},\alpha} \right\}},} \\{{V_{j}:=\left\{ \upsilon_{0} \right\}},} & {for} & {{j \in \left\{ {{\alpha + 1},\ldots\mspace{14mu},{Q + 1}} \right\}},} \\{{{V_{j}^{i}(\alpha)}:=\left\{ {{\upsilon \in V};{\upsilon_{i} = \alpha}} \right\}},} & {for} & {{i = {{\left( {j - 1} \right) \cdot b} + \hat{i}}},} \\\; & \; & {{\hat{i} \in \left\{ {1,\ldots\mspace{14mu},b} \right\}},} \\\; & \; & {{j \in \left\{ {1,\ldots\mspace{14mu},\alpha} \right\}},{\alpha \in {\left\{ {\pm 1} \right\}.}}}\end{matrix}$

For an arbitrary, but fixed choice of yεR^(N), define for qε{1, . . . ,Q}μ_(q):S→

,

${s{\exp\left( {{- \frac{1}{2\sigma^{2}}}{\sum\limits_{j = 1}^{n}\;\left( {y_{{n{({q - 1})}} + j} - {C_{j}(s)}} \right)^{2}}} \right)}} = {{\exp\left( {{- \frac{1}{2\sigma^{2}}}\Delta\;{F_{q}(s)}} \right)}.}$

CalculateA_(m)(s), for sεS, mε{1, . . . , a−1},B_(m)(s), for sεS, mε{1, . . . , Q},

according to the recursion formulae (57) and (70) and starting valuesA₀(s), B₀(s), specified above, with (56) and (71).

Calculate all A_(α) ^(i), iε{1, . . . , L}, αε{±1} over

$\begin{matrix}{{A_{\alpha}^{i}(y)} = {\sum\limits_{s \in S}\;{{A_{j - 1}(s)}{\sum\limits_{t \in {T{({s,{V_{j}^{i}{(\alpha)}}})}}}\;{{B_{Q - j + 1}(t)}.}}}}} & (83)\end{matrix}$

and determine the soft outputs

$L\left( {{{U_{i}\left. y \right)} = {\ln\;\left( \frac{A_{+ 1}^{i}(y)}{A_{- 1}^{i}(y)} \right)}},{i = 1},\ldots\mspace{14mu},{K.}} \right.$

Together with the recursion formula from the preceding section, allA_(α) ^(i)(y) can now be calculated jointly with O(2^(L)·Q) or,respectively, O(K) operations instead of O(K2^(K)) operations.

Note that

L=k·b, Q=a+k−1,K=a·b,

where a is the number of information bits.

The numeric complexity for calculating the soft outputs has thus beenreduced from an exponential order to a linear order where a, the numberof information bits, is the decisive quantity.

Special Case: Binary State Transition (B=1)

In the important special case of b=1, the set V of state transitionsymbols only consists of the two elements +1, −1. The GSM codes, forinstance, belong to this widespread special case.

Since now i=j and V_(j) ^(i) (α)={α} in the above description, theprocedure is simplified as follows:

DefineV _(j):={±1}, for jε{1, . . . , α},V _(j):={+1}, for jε{α+1, . . . , Q+1}

For an arbitrary, but fixed choice of yεR^(N) define for qε{1, . . . ,Q}μ_(q):S→

${s\exp\;\left( {{- \frac{1}{2\;\sigma^{2}}}{\sum\limits_{j = 1}^{n}\;\left( {y_{{n{({q - 1})}} + j} - {C_{j}(s)}} \right)^{2}}} \right)} = {{\exp\left( {{- \frac{1}{2\;\sigma^{2}}}\;\Delta\;{F_{q}(s)}} \right)}.}$

CalculateA_(m)(s), for sεS, mε{1, . . . , α−1},B_(m)(s), for sεS, mε{1, . . . , Q},

according to the recursion formulae (57) and (70) and starting valuesA₀(s), B₀(s) with (56) and (71).

Calculate all A_(α) ^(i), iε{1, . . . , K}, αε{±1} over

$\begin{matrix}{{A_{\alpha}^{i}(y)} = {\sum\limits_{{s\;\varepsilon\; S}\;}^{\;}\;{{A_{i - 1}(s)}{{B_{Q - i + 1}\left( {T\left( {s,\alpha} \right)} \right)}.}}}} & (84)\end{matrix}$

and determine the soft outputs

$L\left( {{{U_{i}\left. y \right)} = {\ln\;\left( \frac{A_{+ 1}^{i}(y)}{A_{- 1}^{i}(y)} \right)}},{i = 1},\ldots\mspace{14mu},{K.}} \right.$Algorithmic Conversion

For the algorithmic conversion, consider the trellis diagram

={(s,q); sεS,q=0, . . . , Q+1}

and the mappings

node weights in state s of trellis segment qμ:

→

,

$\left( {s,q} \right)\exp\;\left( {{- \frac{1}{2\;\sigma^{2}}}\;\Delta\;{F_{q}(s)}} \right)$

Subtotals ‘A’ in state s of trellis segment qA:

→

,(s,q)

A(s,q)

Subtotals ‘B’ in state s of trellis segment Q−q+1B:

→

,(s,q)

B(s,q)

The mappings are only evaluated in the meaningful subsets of thedefinition domain.

FIG. 2 shows an algorithm in pseudocode notation which represents aprogression in the trellis diagram, considering all states for thecalculation of the node weights. The algorithm illustrates the abovestatements and is comprehensible out of itself. Since the value ofΔF_(q)(s) depends only indirectly on the state s and is formed directlywith C(s), the following holds true|{ΔF _(q)(s); sεS}|≦min{2^(L),2^(n)},

i.e., for n<L, many of the above μ(s,q) have the same value. Dependingon the special code, μ(s,q) can thus be determined with far feweroperations in the implementation.

FIG. 3 and FIG. 4 each show an algorithm in pseudocode notation fordetermining soft outputs. FIG. 3 relates to the general case and FIG. 4relates to the special case for the binary state transition (b=1). Bothalgorithms illustrate the above statements and are comprehensible in andof themselves.

With a suitable implementation representation of V and, respectively,v_(j) ^(i)(α), for instance as subsets of N, the above iterations νεVand sεS can be implemented as normal program loops. Naturally, indiceswhich may occur such as, for example, k−1+q, are calculated only once inthe implementation and not with every occurrence as is written down herefor better clarity.

FIG. 5 shows a processor unit PRZE. The processor unit PRZE comprises aprocessor CPU, a memory SPE and an input/output interface IOS which isused in various ways via an interface IFC: an output can be displayed ona monitor MON and/or output on a printer PRT via a graphics interface.An input is made via a mouse MAS or a keyboard TAST. The processor unitPRZE also has a data bus BUS which ensures the connection of a memoryMEM, the processor CPU and the input/output interface IOS. Furthermore,additional components, for example an additional memory, data store(hard disk) or scanner, can be connected to the data bus BUS.

The above-described method and apparatus are illustrative of theprinciples of the present invention. Numerous modifications andadaptations will be readily apparent to those skilled in this artwithout departing from the spirit and scope of the present invention.

1. A method for decoding a predetermined code word, wherein said codeword comprises a number of positions having different values, comprisingthe steps of: providing a processor comprising a central processingunit, memory, an input/output interface, and a data bus connecting saidcentral processing unit to said memory and said input/output interface,said processor decoding a predetermined code word; determining acalculation rule for a soft-output value for each position of said codeword, each said position of said code being correlated with saidsoft-output value, according to the formula$L\left( {{{U_{i}\left. y \right)} = {\ln\;\left( \frac{\sum\limits_{c\;\varepsilon\;{\Gamma^{i}{({+ 1})}}}^{\;}\;{\exp\;\left( {- \frac{\left( {y - c} \right)^{T}\left( {y - c} \right)}{2\;\sigma^{2}}} \right)}}{\sum\limits_{c\;\varepsilon\;{\Gamma^{i}{({- 1})}}}^{\;}\;{\exp\;\left( {- \frac{\left( {y - c} \right)^{T}\left( {y - c} \right)}{2\;\sigma^{2}}} \right)}}\; \right)}},{{{for}\mspace{14mu} i} = 1},\ldots\mspace{14mu},K,}\mspace{45mu} \right.$where L(U_(i)|y) is a safety measure (soft output) for the i-th positionof the code word to be determined; y is a demodulation result to bedecoded; c is a code word; Γ^(i)(±1) are all code words for u_(i)±1; andσ² is a variance (channel disturbance); utilizing a characteristic of aconvolutional code, in decoding of said code word, for determining saidcorrelation of said individual positions of said code word from whichsteps follow of determining states in accordance with a shift registeroperation, and obtaining a trellis representation from these states;calculating weights μ_(q)q(s), for an arbitrary choice of yεR^(N), fornodes (s,q) of said trellis representation by evaluatingμ_(q):S→

,$s\exp\;\left( {{- \frac{1}{2\;\sigma^{2}}}{\sum\limits_{j = 1}^{n}\;\left( {y_{{n{({q - 1})}} + j} - {C_{j}(s)}} \right)^{2}}} \right)$for qε{1, . . . , Q}; determining mappings A_(m) by way of said trellisrepresentation, running through said trellis representation in thenatural direction, and calculating the term A_(m) by${{A_{m}(s)} = {{\mu_{m}(s)}{\sum\limits_{t\;\varepsilon\; W\;{({s,V_{m}})}}^{\square}\;{A_{m - 1}(t)}}}},{{for}\mspace{14mu} m\;\varepsilon}$and a starting value ${A_{0}(s)} = \left\{ \begin{matrix}1 & \vdots & {for} & {{s = s_{0}},} \\0 & \vdots & {else} & \;\end{matrix} \right.$ determining mappings B_(m) by way of said trellisrepresentation, said trellis representation being run through inopposition to a predetermined direction, and calculating the term B_(m)by${{{B_{m}(s)} = {{\mu_{Q - m + 1}(s)}{\sum\limits_{{t\;\varepsilon\; T\;{({s,V_{Q - m + 2}})}}\mspace{11mu}}^{\;}\;{B_{m - 1}(t)}}}},{{{for}\mspace{14mu} 1} \leq m \leq Q},}\mspace{14mu}$where ${B_{0}(s)} = \left\{ \begin{matrix}1 & \vdots & {for} & {{s = s_{0}},} \\0 & \vdots & {else} & \;\end{matrix} \right.$ is determined for terminating the recursion; anddetermining terms A_(α) ^(i) by again running through said trellisrepresentation taking into consideration said terms A_(m) and B_(m)already determined, according to a relation${{A_{\alpha}^{i}(y)} = {\sum\limits_{{s\;\varepsilon\; S}\;}^{\;}\;{{A_{i - 1}(s)}{\sum\limits_{{t\;\varepsilon\; T\;{({s,{V_{j}^{i}{(a)}}})}}\mspace{11mu}}^{\;}{B_{Q - j + 1}(t)}}}}},$where ${j = {\left\lfloor \frac{i - 1}{b} \right\rfloor + 1}};$determining K positions of said code word according to$L\left( {{{U_{i}\left. y \right)} = {\ln\;\left( \frac{A_{+ 1}^{i}(y)}{A_{- 1}^{i}(y)} \right)}},{i = 1},\ldots\mspace{14mu},{K.}} \right.$2. The method as claimed in claim 1, wherein said convolutional code hasbinary state transitions, said method further comprising the steps of:determining mappings A_(m) recursively by the equationA _(m)(s)=μ_(m)(s)(A _(m−1)({circumflex over (T)}(+1s))+A_(m−i)({circumflex over (T)}(−1, s))), for mε

; determining mappings B_(m) recursively by the equationB _(m)(s)=μ_(Q−m+1)(s)(B _(m−1)(T(s,+1))+B _(m−1)(T(s,−1))), for 1≦m≦Q;and determining terms A_(α) ^(i), iε{1, . . . , K}, αε{±1} according tothe equation${A_{\alpha}^{i}(y)} = {\sum\limits_{{s\;\varepsilon\; S}\;}^{\;}\;{{A_{i - 1}(s)}{{B_{Q - i + 1}\left( {T\left( {s,\alpha} \right)} \right)}.}}}$3. The method as claimed in claim 1, further comprising the step of:providing a mobile radio network in which said decoding of apredetermined code word operates.
 4. The method as claimed in claim 3,wherein said mobile radio network is a GSM network.
 5. The method asclaimed in claim 1, wherein said predetermined code word is aconcatenated code word, said method further comprising the steps of:providing said calculated soft-output values as input data of anotherdecoder.